今天寫文章時在 loop J. cole 這張專輯,推薦裡頭兩首歌~
在上一篇文章中了解了基礎的資料驗證方法。今天繼續來 dig in 更進階的資料驗證方式,例如驗證群組(Validation group)和自定義驗證來客製化符合更多情境。
驗證群組 允許在不同情境下應用不同的驗證規則,例如在用戶註冊和用戶登入時應用不同的資料驗證策略。而自定義驗證 則賦予我們開發彈性,根據業務需求建立特定的驗證規則。
以下是舉例來說明要如何在 Spring Boot 中使用 Validation group:
public interface BasicInfoGroup {}
public interface AdvancedInfoGroup {}
這裡定義了兩個介面,用來定義驗證群組。
public class User {
@NotBlank(groups = BasicInfoGroup.class)
private String name;
@NotBlank(groups = BasicInfoGroup.class)
private String email;
@NotBlank(groups = AdvancedInfoGroup.class)
private String address;
// getters and setters
}
@NotBlank 是一個常用的 Bean Validation 註解,用來確保相對應的屬性非空。
groups 屬性是指定在何時應使用哪個群組的驗證規則。
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping("/basic")
public ResponseEntity<String> createBasicUser(@Validated(BasicInfoGroup.class) @RequestBody User user) {
// Business logic
return ResponseEntity.ok("Basic user created!");
}
@PostMapping("/advanced")
public ResponseEntity<String> createAdvancedUser(@Validated({BasicInfoGroup.class, AdvancedInfoGroup.class}) @RequestBody User user) {
// Business logic
return ResponseEntity.ok("Advanced user created!");
}
}
使用驗證群組時應改用 @Validated 註解。
當呼叫 createBasicUser 方法時,只有屬於 BasicInfoGroup 的驗證規則會被採用。
當呼叫 createAdvancedUser 方法時,則會採用屬於 BasicInfoGroup 和 AdvancedInfoGroup 的驗證規則。
優點
:
缺點
: